#pragma once

namespace xKernel
{

enum _xEMsgId
{
    //////////////////////////////////////////////////////////////////////////
    XM_MOUSEMOVE                = WM_MOUSEMOVE,
    XM_MOUSELEAVE               = WM_MOUSELEAVE,
    XM_PARENT_CHANGE            = (WM_USER + 0x1001),
    XM_MOUSEENTER               = (WM_USER + 0x1002),
    //////////////////////////////////////////////////////////////////////////
};

typedef struct _xEventParam
{
    UINT        message;
    WPARAM      wParam;
    LPARAM      lParam;
    BOOL        bHandled;

    _xEventParam()
        : message(0)
        , wParam(0)
        , lParam(0)
        , bHandled(FALSE)
    {}
}EVENTPARAM, *LPEVENTPARAM;

enum _xELayoutType
{
    ELT_HORIZON     = 0,
    ELT_VERTICAL    = 1,
};

enum _xEAlignment
{
    E_ALIGNMENT_LEFT            = 0x0000,
    E_ALIGNMENT_RIGHT           = 0x0001,
    E_ALIGNMENT_H_CENTER        = 0x0002,
    E_ALIGNMENT_TOP             = 0x0000,
    E_ALIGNMENT_BOTTOM          = 0x0100,
    E_ALIGNMENT_V_CENTER        = 0x0200,
};

enum _xEDrawMode
{
    E_DRAWMODE_NORMAL           = 0,
    E_DRAWMODE_M33_TILE         = 1,
    E_DRAWMODE_M33_STRETCH      = 2,
};

enum _xEState
{
    E_STATE_NORMAL              = 0x0000,
    E_STATE_HIGHLIGHT           = 0x0001,
    E_STATE_PUSH                = 0x0002,
    E_STATE_COUNT,

    E_STATE_UNCHECK             = 0x0800,
    E_STATE_CHECK               = 0x0900,

    E_STATE_DISABLE             = 0x8000,
    E_STATE_ENABLE              = 0x9000,

    E_STATE_MASK                = 0x00FF,
    E_STATE_CHECK_MASK          = 0x0F00,
    E_STATE_ENABLE_MASK         = 0xF000,
};

enum _xEAttributeType
{
    E_ATTRI_INT                 = 0,
    E_ATTRI_BOOL                = 1,
    E_ATTRI_BYTE                = 2,
    E_ATTRI_SIZE                = 3,
    E_ATTRI_POINT               = 4,
    E_ATTRI_RECT                = 5,
    E_ATTRI_COLORREF            = 6,
    E_ATTRI_BSTR                = 7,
    E_ATTRI_IXDRAW              = 1000,
    E_ATTRI_ALIGNMENT           = 1001,
};

}